package com.yourenbang.lingyun.transaction.web.domain.dto;

import com.yourenbang.lingyun.constants.enums.ChannelIdEnums;
import com.yourenbang.lingyun.constants.enums.FundBillType;
import com.yourenbang.lingyun.constants.enums.PlatNoEnums;
import com.yourenbang.lingyun.core.base.validator.EnumValue;
import com.yourenbang.lingyun.transaction.web.domain.vo.JournalInfoVO;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 变动账户入参
 */
@Data
public class ChangeFundAccountV2DTO implements Serializable {

    /**
     * 加帐对象
     */
    @NotBlank(message = "加帐对象不能为空")
    private String userBaseId;

    /**
     * 变动金额
     */
    @DecimalMin(value = "0.0",inclusive = false,message = "金额参数错误")
    private BigDecimal changeAmount;

    private JournalInfoVO journalInfo;

    @EnumValue(enumClass= ChannelIdEnums.class, message = "品牌类型未通过校验")
    private Short channelId;

    @EnumValue(enumClass= PlatNoEnums.class, message = "平台类型未通过校验")
    private Short platNo;

    private String orderNo;

    @EnumValue(enumClass= FundBillType.class, message = "账单类型错误")
    private FundBillType fundBillType;

    /**
     * 操作人
     */
    @Deprecated
    private String operator;

    /**
     * 是否手动 0.不手动（默认） 1.手动
     */
    @Deprecated
    private Boolean manualFlag;

    private String detail;

    /**
     * bill 账单是否展示
     */
    private Boolean showFlag;

}
